iT邦幫忙

2022 iThome 鐵人賽

DAY 28
0
自我挑戰組

老菜雞挑戰30天學爆Unity&C#會成功嗎?...系列 第 28

【Day28】老菜雞學下樓梯遊戲之設定Button的觸發事件(Unity Button.onClick)

  • 分享至 

  • xImage
  •  

前言

昨天建立的ReplayButton目前是沒有任何作用的,當玩家點下去之後也不會有任何反應,所以我們今天要來設定Button...


Button.onClick

Button.onClick:按下按鈕時觸發的UnityEvent。
Scripting API: UI.Button.onClick - Unity - Manual

應用

ReplayButton這個按鈕的功用是當玩家按下去之後會讓遊戲重新開始。

點ReplayButton,在它的右側Inspector可以看到有一個On Click()欄,這邊可以設定當這個按鈕被按下去的時候要執行的方法,所以我們現在先來寫遊戲重載的程式碼。

首先,現在Player.cs新增一個方法叫作Replay,這個方法就是要讓遊戲重新開始,那重新開始意味著場景會重跑,所以我們要在這裡加這行程式碼SceneManager.LoadScene("SampleScene");,代表它會重載SampleScene這個場景。因為有用到SceneManager,所以開頭要include這行using UnityEngine.SceneManagement;

那由於現在遊戲還是暫停的,所以我們時間也有重新設定為1倍Time.timeScale = 1f;
所以目前Replay方法的程式碼長這樣

public void Replay()
    {
        Time.timeScale = 1f;
        SceneManager.LoadScene("SampleScene");
    }

接著再回到Unity介面去新增方法到On Click()。

在On Click()點+號
https://ithelp.ithome.com.tw/upload/images/20221006/20152411ZZGLZQpSJh.jpg
就會顯示出一個沒有任何資料的一列
https://ithelp.ithome.com.tw/upload/images/20221006/20152411hnmU2IVtjy.jpg
→將Player物件拉到這一列→點開Player→點Replay

這樣子設定的話,代表當按鈕被點下去的時候,就會執行我們剛剛寫的Replay方法。

試玩~

可以發現當遊戲結束時會跑出ReplayButton,點下去之後遊戲重新開始了!


  • 參考網址:https://www.youtube.com/watch?v=nPW6tKeapsM&ab_channel=GrandmaCan-%E6%88%91%E9%98%BF%E5%AC%A4%E9%83%BD%E6%9C%83

  • 音效、圖片 : 遊戲素材
    (素材由安德斯提供,感謝大大/images/emoticon/emoticon41.gif)


上一篇
【Day27】老菜雞學下樓梯遊戲之新增按鈕(Unity UI Button)
下一篇
【Day29】老菜雞學下樓梯遊戲之大功告成-Unity 匯出遊戲
系列文
老菜雞挑戰30天學爆Unity&C#會成功嗎?...30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言